iT邦幫忙

2023 iThome 鐵人賽

DAY 1
1

身為一位軟體工程師應該蠻常會遇到一件事,就是需要靠通靈才能知道這支程式到底在說什麼,如果今天有個靈媒證照,那或許我們都可以去試試看,當作副業創造金流好像也不錯(?

https://ithelp.ithome.com.tw/upload/images/20230902/20161792DawsTsXJ3V.png

就像上圖,看以前自己寫的code就跟右邊一樣,想借個時光機去扁過去的自己,你越想扁的話就代表這程式越爛

什麼是Clean Code?

  • 「Clean Code 是可被原作者以外的開發者閱讀與增強的。它應當包含單元測試驗收測試

  • 「減少重複、具有高度的表達力、並及早建立簡單抽象概念,這些對我而言,就是撰寫 Clean Code 的方法」

  • 「當每個你看到的程式,執行結果都與你想得差不多,你會察覺到你正工作在 Clean Code 之上」

    https://ithelp.ithome.com.tw/upload/images/20230902/20161792KKy0hGP6bb.png

「急於將產品上市,導致他們的程式碼變得一團糟,當他們加入愈來愈多的產品特點時,程式碼就變得愈來愈糟糕,一直到他們再也無法管理這團混亂。劣質的程式碼導致了這家公司的倒閉
取自Clean Code

雖然Clean Code只有短短的三句話,但我覺得要能做到這三件事並非容易的事,尤其在有外力影響的情況下 (例如:deadline快到了、客戶突然要改需求、一個完全沒摸過的套件等),能再有外力影響下還維持高品質的程式碼也是我的小小夢想。

幹嘛寫單元測試(Unit test)?

我在第一間公司的時候,在快速開發的情況下一直不知道寫測試是什麼東西,直到我無聊開始面試外商才發現原來我是大便,測試不會寫,直接被皮諾可電死。
從那時候我才開始學習寫測試,這邊推薦大家,腳麻了就去面試一下吧,直接打通任督二脈

前面廢話太久了,其實寫測試簡單來說就是確保程式碼不會有問題,說來簡單,但跟蛋炒飯一樣要做到好可不容易。

改動一個功能時發現蝴蝶效應的出現

在開發的時候,有時候改了一個功能,網站就跟按下核彈一樣直接爆炸,那就要回頭想想,是不是耦合性太高了,有寫測試的習慣也會讓你不知不覺寫出低耦合的程式碼。

易讀性

有寫測試的話,也會因為你寫的 test case 讓讀你 code 的人更容易了解這個 function 在做什麼,就像物理公式一樣,只看公式不太了解,但看完範例之後,你就知道這公式是在幹嘛的了。

重構

工作上要事處理完之後,閒暇之餘,來優化以前的程式碼吧!

當你下定決心要改前面code的時候,發現怎麼小改一下功能就壞掉了,結果就打消了重構程式碼的念頭,透過寫測試,你可以增加程式碼的可靠性。
當每個程式碼都是牢靠的,就不太需要擔心重構時出現bug,讓你的精氣神都專注在開發上~


我的看法

一個容易看懂的程式碼就想國小課文一樣,一眼掃過去就知道個大概,而劣質的程式就跟看文言文一樣,還要去猜當時古人的心情再用自己的角度去解釋,既然身為工程師,我想我們都想當解決問題的人,而不是創造麻煩的雷包吧~

也因如此,我開始學習Clean Code 跟寫測試,這30天我會先簡單介紹clean code,之後會比較著重在寫測試的部分,跟大家一起學習並增進自己的能力~


下一篇
Day 2 - Clean Code 介紹 & 命名(Naming)
系列文
React Clean Code And Unit Tests - 利用測試寫出人類看得懂的React程式30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言